MySQL GROUP BY 和 COUNT 多列
全部标签 希望你能帮上忙:)表格是这样的:+------------+----------------+------------------+---------+|firstName|lastName|email|etc...|+------------+----------------+------------------+---------+|John|Doe|john@doe.com|etc...|+------------+----------------+------------------+---------+|John|Michaels|john@michaels.es|etc..
我无法理解如何将不同的事件拆分和计数到单独的列中。这是开始表:+------------+---------+|CustomerID|Activity|+------------+---------+|1|Click||1|View||1|Inquiry||2|Click||2|View||3|Click||3|Click|+------------+---------+我希望能够将其转换为:+------------+------+-------+---------+|CustomerID|View|Click|Inquiry|+------------+------+-------
我在SQL中有下表TV_Show|genre_1|genre_2|a|action|sci-fi|b|sci-fi|comedy|c|comedy|romance|d|action|sci-fi|.|.|.|.|.|.|.|.|.|我想运行一个查询,计算每个不同的、独特的类型在整个表中出现的次数。我想要以下结果。此输出的顺序无关紧要:action2sci-fi3comedy2romance1......SQL查询应该是什么?编辑我已经尝试运行以下命令,但它不起作用:SELECTgenre1ORgenre2,COUNT(*)FROMtv_showGROUPBYgenre1ORgenre2
我已经像这样创建了MySQL表。CREATETABLE`log_info`(`log_id`int(11)NOTNULLAUTO_INCREMENT,`log_datetime`datetimeNOTNULL,`log_attacker_ip`int(11)NOTNULL,`log_event`varchar(250)NOTNULL,`log_service_port`varchar(10)NOTNULL,`log_target_ip`int(11)NOTNULL,`log_severity`varchar(3)NOTNULL,PRIMARYKEY(`log_id`))ENGINE=I
是否可以让MySQLLIMIT有一个总行数除以2的偏移量,以便查询看起来像这样:SELECT*FROMtestLIMITCOUNT(*)/2,55只是一个数字。 最佳答案 这是不可能的。来自documentation:ExpressionscanbeusedatseveralpointsinSQLstatements,suchasintheORDERBYorHAVINGclausesofSELECTstatements,intheWHEREclauseofaSELECT,DELETE,orUPDATEstatement,orinSE
我有一个$string='London,Paris,Birmingham'形式的字符串,我想在多个列中搜索这些值的出现。例如WHEREevents.name,events.cities,events.countiesIN(".($string).")有人能给我推荐一种简单而快捷的方法来做这样的事情吗。 最佳答案 使用FIND_IN_SETfunction:WHERE(FIND_IN_SET(events.name,mysql_real_escape_string($string))>0ORFIND_IN_SET(events.cit
以下查询为我提供了一列距离。但我需要的只是具有匹配距离的结果数,而不是距离本身。不能使用子选择。SELECT(6368*SQRT(2*(1-cos(RADIANS(loc_lat))*cos(0.899945742869)*(sin(RADIANS(`loc_lon`))*sin(0.14286767838)+cos(RADIANS(`loc_lon`))*cos(0.14286767838))-sin(RADIANS(loc_lat))*sin(0.899945742869))))ASDistanceFROM...WHERE...HAVINGDistance>0ANDDistance
我正在尝试从具有22m行的表中获取用户的订阅者数量。我的sql如下:SELECTCOUNT(id)FROMsubscribersWHEREsuid=541839243781加载需要12.6020s但是以下相同的查询(获取用户的订阅)只需要0.0036秒来加载(似乎没问题)SELECTCOUNT(uid)FROMsubscribersWHEREuid=541839243781我的解释:idselect_typetabletypepossible_keyskeykey_lenrefrowsExtra1SIMPLEdvx_subscribersindex4416NULL22041275Usi
我有我的mysql表posts,其中存储了我论坛的所有帖子。是这样的:iduidthreadposttitletexttime(int)(int)(varchar)(int)(varchar)(text)(int)现在我想在用户个人资料上显示排名(帖子数量排名)。我试过这样的事情:set@rownum:=0;SELECT@rownum:=@rownum+1ASrank,uid,count(id)FROM`posts`GROUPBYuidORDERBYcount(id)但它返回的数据不正确。uid和count(id)匹配,但排名错误。我的条目是这样的:rankuidcount(id)11
我探索了许多关于如何从多个列中返回最大值以及列名的问题和答案。但是我还没有解决问题在此问题中将解释:SQLMAXofmultiplecolumns?但我不知道如何找出具有最大值(value)的列名?有什么想法吗? 最佳答案 您可以使用GREATEST查找所有列中最大值的函数:SELECT@var_max_val:=GREATEST(col1,col2,col3,...)ASmax_value,CASE@var_max_valWHENcol1THEN'col1'WHENcol2THEN'col2'...ENDASmax_value_c